# 1. 读取mysql数据库的内容
# 1.1 导包 pymysql
import pymysql

# 1.2 链接mysql数据库
conention = pymysql.connect(
    host='localhost',
    port=3306,
    user='root',
    password='mysql',
    db='car',
    charset='utf8',
    cursorclass=pymysql.cursors.DictCursor

)

# 1.3 创建 cursor 对象
with conention.cursor() as cursor:
    # 1.4 写查询 sql 语句
    sql = 'select name,num from car_shop'
    # 1.5 执行
    cursor.execute(sql)

    # 1.6 获取 查询的数据 fetchall()
    data = cursor.fetchall()
    """
        [{'name': '天开信息有限公司', 'num': 522}, {'name': '飞海科技网络有限公司', 'num': 769}, {'name': '创亿网络有限公司', 'num': 873}, {'name': '彩虹传媒有限公司', 'num': 527}, {'name': '商软冠联网络有限公司', 'num': 625}, {'name': '盟新网络有限公司', 'num': 891}, {'name': '东方峻景科技有限公司', 'num': 737}, {'name': '济南亿次元网络有限公司', 'num': 338}, {'name': '恩悌科技有限公司', 'num': 472}, {'name': '华远软件科技有限公司', 'num': 830}]
    """

    # print(data)

# 1.7 关闭链接
conention.close()

# 2. 写入到excel文件
# 2.1 导包
from openpyxl import Workbook

# 2.2 实例化对象 -- 创建工作簿
wb = Workbook()

# 2.3 获取默认表
sheet = wb.active

# 2.4 插入表头
title = ['门店', '销售量']
sheet.append(title)

# 2.5循环遍历 数据  写入表
for dt in data:
    sheet.append([dt['name'], dt['num']])

# 3. 饼状图
# 3.1 导入模块
from openpyxl.chart import PieChart, Reference

# 3.2 实例化饼状图
pie = PieChart()
pie.title = "北京地区的销售业绩"

# 3.3 加载数据--饼状图
labels = Reference(sheet, min_col=1, min_row=2, max_row=6)
data = Reference(sheet, min_col=2, min_row=1, max_row=6)
pie.add_data(data, titles_from_data=True)

# 3.4 加载标注--饼状图
pie.set_categories(labels)

# 3.5 添加到excelwen文件的表
sheet.add_chart(pie, 'D1')

# 2.6 保存工作簿
wb.save('05饼状图mysql.xlsx')

print('饼状图生成....')
